package com.mc.lp.database.dao;

import java.util.List;
import java.util.Set;

import com.mc.lp.database.entity.MicroCampusBaseEntity;
import com.mc.lp.database.entity.PermissionEntity;
import com.mc.lp.database.entity.RoleEntity;
import com.mc.lp.database.entity.UserEntity;

public interface IAccessControlDAO extends IGenericDAO<MicroCampusBaseEntity, Long> {

	List<RoleEntity> getRolesByUserID(Long userID);

	Set<PermissionEntity> getPermissionsByRoleID(Long roleID);

	Set<RoleEntity> getAllRoles();

	Set<UserEntity> getAllUser();

	Set<PermissionEntity> getAllPermissions();

	PermissionEntity getPermissionByID(Long permissionID);

	RoleEntity getRoleById();

	RoleEntity getRoleByName(String roleName);

	PermissionEntity getPermissionByName(String permissionName);

	void addRoleToUser(String userID, String roleID);

}
